package cn.com.surker.production.entity;

import cn.com.surker.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 生产运输单价表
 * </p>
 *
 * @author admin
 * @since 2024-12-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ProductionTransportPrice extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 生产运输合同ID
     */
    private Long contractId;

    /**
     * 运输供应商ID
     */
    private Long supplierId;

    /**
     * 生效时间
     */
    private Date takeTime;

    /**
     * transport_type 标号运输类型 0普通混凝土，1砂浆，2站内接水，3，水稳层，4，干喷混凝土，5透水混凝土，6，彩色混凝土，7站外接水
     */
    private Integer transportType;

    /**
     * 计量方式0:方量1:车次,2:吨
     */
    private Integer countType;

    /**
     * 车辆类型(0:轻量化1:中车2:大车)
     */
    private Integer carModel;

    /**
     * 是否高速(0：非高速，1：高速)
     */
    private Integer roadType;

    /**
     * 是否走超限站(0:不走，1：走超限)
     */
    private Integer overLimit;

    /**
     * 最小距离
     */
    private Double minDistance;

    /**
     * 最大距离
     */
    private Double maxDistance;

    /**
     * 最小方量
     */
    private Double minStere;

    /**
     * 费用结算种类(0:按运输合同结算,1:按工程计算)
     */
    private Integer billType;

    /**
     * 销售合同ID
     */
    private String conIds;

    /**
     * 最大方量
     */
    private Double maxStere;

    private Double price;
    /**
     * 单价类型 0：基础单价  1：递增价
     */
    private Integer priceType;

    @TableField(exist = false)
    private String conNames;
    /**
     * 含税单价
     */
    private Double taxPrice;
    public ProductionTransportPrice(){}
    public ProductionTransportPrice(Long orgId, Long contractId, Long supplierId, Date takeTime,
                                    Integer transportType, Integer countType, Integer carModel, Integer roadType,
                                    Integer overLimit, Double minDistance, Double maxDistance, Double minStere, Double maxStere, Double price) {
        this.orgId = orgId;
        this.contractId = contractId;
        this.supplierId = supplierId;
        this.takeTime = takeTime;
        this.transportType = transportType;
        this.countType = countType;
        this.carModel = carModel;
        this.roadType = roadType;
        this.overLimit = overLimit;
        this.minDistance = minDistance;
        this.maxDistance = maxDistance;
        this.minStere = minStere;
        this.maxStere = maxStere;
        this.price = price;
    }
}
